// 引入 Count  的UI组件
import React, { Component } from 'react'

// 引入action
import {createIncrementAction , createDecrementAction, createIncrementAsyncAction} from '../../redux/actions/count_action'

// 引入connect 用于连接UI组件与react
import { connect } from 'react-redux'
// import store from '../../redux/store'

// 对象
// state == store.getState == 99



 class Count extends Component {

  state = { carName: '奔驰c63' }
  
  // 修改数据重新渲染
  // componentDidMount() {
  //   store.subscribe(() => {
  //     this.setState({})
  //   })
  // }

  // 加法
  increment = ()=>{
  
    const { value } = this.selectNum
    this.props.jia(value*1)

  }
  // 减法
  decrement = ()=>{
    const { value } = this.selectNum
    this.props.jian(value*1)
  }
  // 奇数加
  incrementIfOdd = ()=>{
    const { value } = this.selectNum
    if (this.props.count % 2 !== 0) {
      this.props.jia(value*1)
    }
  
  }
  incrementAsync = ()=>{
    const { value } = this.selectNum
    this.props.jiaAsync(value*1, 500)
  }

  render() {
    return (
      <div>
        <h2>求和为：{this.props.count}</h2>
        <h2>总人数为：{this.props.person.length}</h2>
        <select ref={c => this.selectNum = c}>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
        </select>&nbsp;
        <button onClick = { this.increment}>+</button>&nbsp;
        <button onClick = { this.decrement}>-</button>&nbsp;
        <button onClick = { this.incrementIfOdd}>求和为奇数再加</button>&nbsp;
        <button onClick = { this.incrementAsync}>异步加</button>
      </div>
    )
  }
}





export default connect(
  state => ({ count: state.he, person: state.person }),
  {
    jia: createIncrementAction,
    jian: createDecrementAction,
    jiaAsync: createIncrementAsyncAction
   })
  (Count)